#include "widget.h"
#include "ui_widget.h"
#include<QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //带参的槽函数实际参数由信号传递，槽函数使用时无需提供参数
    //一对一
    connect(this,&Widget::mySingal1,this,&Widget::handleSignal1);
    connect(this,&Widget::mySingal2,this,&Widget::handleSignal2);
    //一对多
    connect(this,&Widget::mySingal1,this,&Widget::handleSignal1);
    connect(this,&Widget::mySingal1,this,&Widget::handleSignal2);
    connect(this,&Widget::mySingal1,this,&Widget::handleSignal3);
    //多对一
    connect(this,&Widget::mySingal1,this,&Widget::handleSignal1);
    connect(this,&Widget::mySingal2,this,&Widget::handleSignal1);

    emit mySingal1("mySingal1");//向槽函数提供真正的参数
    emit mySingal2("mySingal2");
}

Widget::~Widget()
{
    delete ui;
}

void Widget::handleSignal1(const QString&str)
{
    qDebug()<<str;
}

void Widget::handleSignal2(const QString&str)
{
    qDebug()<<str;
}

void Widget::handleSignal3(const QString&str)
{
    qDebug()<<str;
}
